<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      /*
        会影响原数组的：
        push pop shift unshift splice sort reverse

        操作
        push pop shift unshift splice slice concat at join with
        迭代
        map forEach reduce reduceRight

        sort reverse flat flatMap fill 

        过滤
        filter every some includes 
        查找
        indexOf lastIndexOf find findIndex findLast findLastIndex
        
        toLocaleString

        values entries keys
        

        toReversed toSorted toSpliced

        静态方法
        Array.isArray()
        Array.fromAsync
        Array.of
        Array.from

        */
      // push(val),输入：值，输出：数组长度
      const arr = [undefined];
      const a = arr.push();
      console.log(a); // 1

      // pop(),输入：无，输出：数组尾部的值,无则undefined
      const b = arr.pop();
      console.log(arr, b); //undefined

      //unshift(val),输入：值，输出：数组长度
      console.log(arr, arr.unshift(...[1, 2, 3]));
      //shift(),输入：无，输出：数组头部的值,无则undefined
      console.log(arr, arr.shift());

      //splice(开始的位置，删除的个数，...需要插入的值),
      //输入:开始的位置，删除的个数，...需要插入的值
      //输出:返回被删除的值数组，无则是空数组
      console.log(arr.splice(0, 2, "b"), arr);

      //with(索引,需要替换的值)
      //输入：索引，新的值
      //输出：替换完后的新的数组
    </script>
  </body>
</html>
